package com.wicket.okrapp.integration.dto;

import com.wicket.okrapp.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import javax.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * @desc BuildSingleTargetComReqDto
 * @使用场景
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class BuildSingleTargetComReqDto
  extends BaseDto
  implements Serializable {

  /**
   * 就职记录ID
   */
  @NotNull(message = "就职记录ID不能为空")
  @ApiModelProperty("就职记录ID")
  private String inductionRecordId;

  /**
   * 角色ID
   */
  @ApiModelProperty("角色ID")
  private String roleId;

  /**
   * 部门ID
   */
  @ApiModelProperty("部门ID")
  private String deptId;

  /**
   * 权重
   */
  @NotNull(message = "权重不能为空")
  @ApiModelProperty("权重")
  private Double weightValue;

  /**
   * 权重分值
   */
  @NotNull(message = "权重分值不能为空")
  @ApiModelProperty("权重分值")
  private Double weightScore;

  /**
   * 周期模式类型编码 FATHER_SON_CYCLE:父子周期 SINGLE_CYCLE:单周期 IRREGULAR_CYCLE:不规则周期
   */
  @NotNull(message = "周期模式类型编码不能为空")
  @ApiModelProperty("周期模式类型编码")
  private String periodicModeTypeCode;

  /**
   * 归属评价模板ID
   */
  @NotNull(message = "归属评价模板ID不能为空")
  @ApiModelProperty("归属评价模板ID")
  private String evaluationTemplateId;

  /**
   * 冗余评价主题ID
   */
  @NotNull(message = "冗余评价主题ID不能为空")
  @ApiModelProperty("冗余评价主题ID")
  private String evaluationSubjectId;

  /**
   * 目标周期任务进展状态 NOT_AT_THE:未开始 ONGOING:进行中 HAS_ENDED:已结束
   */
  @NotNull(message = "目标周期任务进展状态不能为空")
  @ApiModelProperty("目标周期任务进展状态")
  private String taskStatus;

  /**
   * 批次标识
   */
  @ApiModelProperty("批次标识")
  private String batchCode;

  /**
   * 主体生命周期 CURRENTLY_VALID:当前有效 EDITING:正在编辑 ARCHIVING:历史存档
   */
  @ApiModelProperty("主体生命周期")
  private String subjectLifeCycle;

}
